htt[p]erl, simulador de web server

Publicado por Fábio Berbert de Paula 06/01/2003

[ Hits: 7.883 ]

Homepage: https://fabio.automatizando.dev

Download httperl.pl




htt[p]erl é um script usado para simular um servidor web, muito bom para quem deseja entender melhor o protocolo de comunicação entre browser e servidor. O programa fica escutando na porta TCP 80 e envia uma página HTML padrão para o browser do usuário.

  



Esconder código-fonte

#!/usr/bin/perl
# ---------------------------------------------------------
# httperl.pl (htt[p]erl)
# 
# Script em Perl usado para simular um servidor web, muito
# bom para quem deseja entender melhor o protocolo de 
# comunicação entre browser e servidor
#
# 
# Programado por Fábio Berbert de Paula 
# <fabio@vivaolinux.com.br>
#
# Rio de Janeiro, 06 de Janeiro de 2003
# ---------------------------------------------------------

$| = 1;

# criar socket na porta 80 do servidor
use IO::Socket;
my $sock = new IO::Socket::INET (
     LocalPort => '80',
     Type      => SOCK_STREAM,
     Proto     => 'tcp',
     Listen    => 10
);
die "Não consegui iniciar o servidor: $!\n" unless $sock;
print "Servidor iniciado ...\n";

# definir o cabeçalho de retorno básico
my $retorno = "
HTTP/1.1 200 OK
Server: htt[p]erl/1.0 (GNU/Linux)
Connection: close
Content-Type: text/html

<html>
<body>
Uma cortesia de <a href=\"http://www.vivaolinux.com.br\">Viva o Linux</a>.
</body>
</html>
";

# aceitar conexões TCP
while (my $new_sock = $sock->accept()) {
   while($linha = <$new_sock>) {
      # imprimir o cabeçalho recebido pelo browser do usuário
      print $linha;

      # se linha vazia, então o browser envio câmbio, vamos respondê-lo
      if ($linha!~/[A-Za-z0-9]/) {
         print $new_sock $retorno;
         # fechar conexão com o cliente
         $new_sock = '';
      }
   }
   close(W);
}
close($sock);

Scripts recomendados

Monitoração Web com Perl

Calculadora de notas versão Perl

Auto Ident XML

Tratando Exceções com o Perl

lol


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts